package com.estate.common.core.domain.req;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * Lumina数据上传规范对应数据表，包含客户数据、房产属性数据和房产销售数据
 */
@Data
public class TransactionDataReq {

    /** 客户唯一标识 */
    private String clientId;

    /** 客户名 */
    private String clientFirstName;

    /** 客户姓 */
    private String clientLastName;

    /** 客户手机号 */
    private String clientMobile;

    /** 客户邮箱 */
    private String clientEmail;

    /** 房源ID */
    private String listingId;

    /** 房源所在郊区 */
    private String listingSuburb;

    /** 房源状态(on market/off market/sold/under offer/non) */
    private String listingStatus;

    /** 房源地址 */
    private String listingAddress;

    /** 房源类型(Sale/Lease/Sale Lease/Auction/Sale or Lease) */
    private String listingType;

    /** 房源在市场上的天数 */
    private Date listingDaysOnMarket;

    /** 卧室数量 */
    private Integer listingBed;

    /** 浴室数量 */
    private Integer listingBath;

    /** 车位数量 */
    private Integer listingCar;

    /** 土地面积 */
    private Integer listingLandsize;

    /** 建筑面积 */
    private Integer listingFloorsize;

    /** 拍卖日期 */
    private Date listingAuctionDate;

    /** 交易日期 */
    private Date listingTransactionDate;

    /** 房源分类(Residual/Commercial/Rural/Business) */
    private String listingCategory;

    /** 交易类型(auction/exclusive/open/conjunctional/private treaty) */
    private String listingTransactionType;

    /** 外部中介机构 */
    private String listingAgencyExternal;

    /** 外部中介人 */
    private String listingAgentExternal;

    /** 提交日期 */
    private LocalDateTime listingDateSubmitted;

    /** MCB主导经纪人邮箱 */
    private String listingMcbLeadAgentEmail;

    /** MCB支持经纪人邮箱 */
    private String listingMcbSupportingAgentEmail;

    /** 市场价格 */
    private BigDecimal listingMarketPrice;

    /** 销售价格 */
    private BigDecimal listingSalePrice;

    /** 交换日期 */
    private Date listingExchangeDate;

    /** 中介协议签署日期 */
    private Date listingAgencyAgreementSignedDate;

    /** 中介协议期限(天) */
    private Integer listingAgencyPeriod;

    /** 租约期限 */
    private String listingLeaseTerm;

    /** 租赁物业类型(apartment/house/studio/town house/villa) */
    private String listingPropertyType;

    /** 市场租金 */
    private String listingMarketRent;

    /** 最终租金 */
    private String listingFinalRent;

    /** 交换邮件发送日期 */
    private Date exchangeMailSent;

    /** 冷静期天数 */
    private String coolingOffDays;

    /** 冷静期结束日期 */
    private Date coolingOffEndDate;

    /** 定金形式(Deposit Guarantee/Other/EFT/Cheque) */
    private String formOfDeposit;

    /** 预计结算日期 */
    private Date proposedSettlementDate;

    /** 是否已结算(settled/N/A-withdrawn/n/a) */
    private String settled;

    /** 是否场外房源(yes/no) */
    private String offMarketListing;

    /** 首次开放日期 */
    private Date firstOpen;

    /** 预展日期 */
    private Date sneakPreviewDate;

    /** 销售方式(Private Treaty/Auction) */
    private String methodOfSale;

    /** 总佣金(含GST) */
    private BigDecimal totalCommission;

    /** 佣金比例(%) */
    private BigDecimal commissionFeePercent;

    /** 是否推荐房源(yes/no) */
    private String wasThisListingAReferral;

    /** 推荐类型(External/Internal) */
    private String whatTypeOfReferral;

    /** 约定的推荐费 */
    private String agreedReferralFee;

    /** 是否在农场区域内(yes/no) */
    private String wasThisListingInYourFarmArea;

    /** 是否在Realtair中交换(yes/no) */
    private String wasThisListingExchangedInRealtair;
}